<?php
/*
 * 基础控制器
 * 必须继承自think\Controller.php
 */

namespace app\common\controller;

use app\common\model\Article;
use think\Controller;
use think\facade\Session;
use app\common\model\ArtCate;
use app\admin\common\model\Site;
use think\facade\Request;
class Base extends Controller
{

    /*
     * 初始化方法
     * 创建常量、公共方法
     * 在所有方法之前调用
     */
    protected function initialize()
    {
        //显示分类导航
        $this->showNav();//使cateList成为全局变量

        //检测网站是否关闭
        $this->is_open();

        //获取右侧数据
        $this->getHotArt();
    }
    //防止用户重复登录
    protected function Logined(){
        if(Session::has('user_id')){
            $this->error('请先退出再登录','index/index');
        }
    }

    //是否登录
    protected function isLogin(){
        if(!Session::has('user_id')){
            $this->error('请先登录','user/login');
        }
    }

    //显示分类导航
    protected function showNav(){
        //1/查询分类表 获取所有分类信息
        $cateList = ArtCate::all(function ($query){
            $query->where('status',1)->order('sort','asc');
        });
        //2将分类信息传给模板 nav.html
        $this->view->assign('cateList',$cateList);


    }

    //检查站点是否关闭
    protected function is_open(){
        //1.获取当前站点状态
        $isOpen = Site::where('status',1)->value('is_open');

        //2如果站点已经被关闭，我们只允许关闭前台，后台必须开启，不能关闭
        if($isOpen == 0 && Request::module()=='index'){
            //关闭网站
            $info = <<<'INFO'
<body style="background-color:#333">
<h1 style="color: #eee;text-align: center;margin: 200px">站点维护中..</h1>
</body>
INFO;
            exit($info);
        }


    }

    //检测注册是否关闭
    protected function is_reg(){
        //1.获取当前注册状态
        $isReg = Site::where('status',1)->value('is_reg');

        //2如果已经关闭，直接跳到首页
        if($isReg == 0){
            $this->error('注册关闭','index/index');
        }
    }

    //根据阅读量PV获取内容
    protected function getHotArt(){
        $hotArtList = Article::where('status',1)->order('pv','desc')->limit(12)->select();

        $this->assign('hotArtList',$hotArtList);
    }




}